home *** CD-ROM | disk | FTP | other *** search
-
- Delphi での ASCII テーブルの取り扱い方
- --------------------------------------
-
- Delphi では ASCII テキストファイルを,機能が限定されたテーブルとして使用
- することができます。通常 ASCII テーブルは,ほかの形式との間でデータをやり取
- り(エクスポートやインポート)する場合に使用してください。ASCII テーブルをア
- プリケーションのための一般的なデータソースとして使うことは避けてください。
-
- 個々の ASCII テーブルごとに,データファイル (一般に拡張子は .TXT) とスキー
- マファイル (基本ファイル名は同じで拡張子は .SCH) が必要です。スキーマファイ
- ルには,テーブルの構造とその列 (項目) のデータ型に関する情報が入っています。
-
- ASCII テーブルは,常に排他的アクセス用に開かれます。つまり ASCII テーブル
- に同時にアクセスできるのは 1 つのアプリケーション (セッション) だけです。こ
- のため ASCII テーブルを参照するアプリケーションを実行する前には,他のアプリ
- ケーションでその ASCII テーブルのファイルを開いていないことを確認しなければ
- なりません。
-
- TBatchMove コンポーネントでテーブルを ASCII 形式にコピーすると,スキーマ
- ファイルと ASCII データファイルが自動的に作成されます。ASCII テーブルは常に
- Fixed 形式のファイルとして作成されます。Delphi で (たとえば,BatchMove また
- は CreateTable メソッドで) ASCII テーブルを作成する場合,TableType を
- ttASCII と指定しなければなりません。TableType を ttDefault のままにしないで
- ください。
-
- 以下のものは,ASCII テーブルではサポートされていません。
-
- ・インデックス (したがって,GoToKey や SetRange などのインデックスが必要な
- メソッドや関数も含む)
- ・TQuery コンポーネント (SQL)
- ・レコードの削除
- ・レコードの(テーブル途中への)挿入。挿入は常にテーブル末尾への追加として扱
- われる
- ・参照の整合性
- ・BLOB (バイナリラージオブジェクト) 型のデータ型
- ・Delimited 形式のテーブルは,レコードを変更 (編集) できない
-
- スキーマファイル
- ----------------
- スキーマファイル内のすべての情報は,大文字と小文字を区別します。以下に、
- スキーマファイルの例を示します。
-
- [CUSTOMER] // ファイル名 (拡張子なし)
- FILETYPE = Delimited // ファイル形式:Delimited または Fixed
- CHARSET = ascii // 言語ドライバ名
- DELIMITER = " // 文字項目 (フィールド) の区切り文字
- SEPARATOR = , // 項目 (フィールド) 分離文字
- Field1 = Name,CHAR,12,0,0 // 項目 (フィールド) 情報
- Field2 = Salary,FLOAT,8,2,12
-
- スキーマファイルの形式は Windows の INI ファイルに似ています。ファイルは
- 角カッコに入ったテーブル名で始まります。2 行目は,キーワード FILETYPE の後
- にファイル形式として Fixed または Delimited のどちらかを指定します。
-
- ・Fixed 形式のファイルでは,ファイル内の各項目は常に固定文字数を取り,必要
- に応じてスペースが埋められます。
- ・Delimited 形式のファイルでは,各項目が可変数の文字を取り,各文字項目が区
- 切り文字で区切られ,項目が分離文字で分離されます。Delimited 形式ファイル
- には,区切り文字と分離文字を指定しなければなりません。Fixed 形式ファイル
- では指定する必要はありません。
-
- CHARSET 属性は,使用する言語ドライバの名前を指定します。
-
- 残りの行は,テーブルの項目 (列) の属性を指定します。各行は「Fieldx = 」で
- 始まります。ここで x は項目番号です (Field1,Field2 など)。その次に,以下の
- ものを指定するカンマで区切ったリストが続きます。
-
- ・項目名:Paradox の項目名と同じ制限を受けます。
- ・データ型:項目のデータ型。以下を参照してください。
- ・文字数または単位数:数値型の場合 20 以下でなければなりません。日付/時刻デー
- タ型の最大文字総数 (/ や : などの分離文字を含む)。
- ・小数点以下の桁数 (FLOAT 以外は 0)。
- ・オフセット:項目が始まる行の先頭からの文字数。Fixed 形式だけに使用します。
-
- 以下のデータ型がサポートされています。
-
- CHAR 文字
- FLOAT 64 ビット浮動小数点数
- NUMBER 16 ビット整数
- BOOL 論理値 (T または F)
- LONGINT 32 ビット倍長整数
- DATE 日付型項目。形式は IDAPI.CFG で指定する
- TIME 時刻型項目。形式は IDAPI.CFG で指定する
- TIMESTAMP 日付+時刻型項目。形式は IDAPI.CFG で指定する
-
- メモ:日付と時刻の形式は,BDE 環境設定ユーティリティで指定できます。
-
- 例 1: Delimited 形式ファイル
- ---------------------------
- CUSTOMER.SCH:
-
- [CUSTOMER]
- Filetype=Delimited
- Delimiter="
- Separator=,
- CharSet=ascii
- Field1=Customer No,Float,20,04,00
- Field2=Name,Char,30,00,20
- Field3=Phone,Char,15,00,50
- Field4=First Contact,Date,11,00,65
-
- CUSTOMER.TXT:
-
- 1221.0000,"Kauai Dive Shoppe","808-555-0269",04/03/1994
- 1231.0000,"Unisco","809-555-3915",02/28/1994
- 1351.0000,"Sight Diver","357-6-876708",04/12/1994
- 1354.0000,"Cayman Divers World Unlimited","809-555-8576",04/17/1994
- 1356.0000,"Tom Sawyer Diving Centre","809-555-7281",04/20/1994
-
- 例 2: Fixed 形式ファイル
- -------------------------
- CUSTOMER.SCH:
-
- [CUSTOMER]
- Filetype=Fixed
- CharSet=ascii
- Field1=Customer No,Float,20,04,00
- Field2=Name,Char,30,00,20
- Field3=Phone,Char,15,00,50
- Field4=First Contact,Date,08,00,65
-
- CUSTOMER.TXT:
-
- 1221.0000Kauai Dive Shoppe 808-555-0269 04/03/94
- 1231.0000Unisco 809-555-3915 02/28/94
- 1351.0000Sight Diver 357-6-876708 04/12/94
- 1354.0000Cayman Divers World Unlimited 809-555-8576 04/17/94
- 1356.0000Tom Sawyer Diving Centre 809-555-7281 04/20/94
-